test driven development issues